<!-- XHTML 1.0 Strict -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<meta name="author" content="Rachid Touzani" />
<meta name="keywords" content=" css, dropdowns, dropdown menu, drop-down, menu, navigation, nav, horizontal, vertical left-to-right, vertical right-to-left, horizontal linear, horizontal upwards, cross browser, internet explorer, ie, firefox, safari, opera, browser, lwis" />
<meta name="description" content="Clean, standards-friendly, modular framework for dropdown menus" />
<link href="../css/dropdown.vertical.css" media="screen" rel="stylesheet" type="text/css" />
<link href="../css/default.ultimate.css" media="screen" rel="stylesheet" type="text/css" />
<head>
<!-- Title -->
<title>OFELI - Documentation</title>
<!-- Stylesheet -->
<link rel="stylesheet" type="text/css" href="../doxygen.css" />
<link rel="stylesheet" type="text/css" href="../tabs.css" />
</head>
<body>
<p align="center">
  <img src="../im/ofeli.gif" alt="OFELI's Logo" width="300" height="90">
</p>
<p align="center"><font color="#203F5B" size="4" face="verdana,Helvetica">
<b>An Object Oriented Finite Element Library</b></font></p>
<!-- Complete Page-->
<div id="main">
<div id="mainmenu">
 <div class="text">
<!-- Menu -->
 <div class="tabs">
  <ul class="tablist">
   <li><a href="../index.html"><span>Home</span></a>
    <li><a href="../overview.html"><span>Overview</span></a>
    <li><a href="../extlib.html"><span>External Libraries</span></a>
    <li><a href="../citing.html"><span>Citing OFELI</span></a>
    <li><a href="../fformats.html"><span>File Formats</span></a>
    <li><a href="../demos.html"><span>Demo Codes</span></a>
  </ul>
 </div>
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classOFELI_1_1Matrix.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classOFELI_1_1Matrix-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Matrix&lt; T_ &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__OFELI.html">OFELI</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Virtual class to handle matrices for all storage formats.  
 <a href="classOFELI_1_1Matrix.html#details">More...</a></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Matrix&lt; T_ &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="classOFELI_1_1Matrix.png" usemap="#Matrix_3C_20T_5F_20_3E_map" alt=""/>
  <map id="Matrix_3C_20T_5F_20_3E_map" name="Matrix&lt; T_ &gt;_map">
<area href="classOFELI_1_1BMatrix.html" title="To handle band matrices. " alt="BMatrix&lt; T_ &gt;" shape="rect" coords="0,56,107,80"/>
<area href="classOFELI_1_1DMatrix.html" title="To handle dense matrices. " alt="DMatrix&lt; T_ &gt;" shape="rect" coords="117,56,224,80"/>
<area href="classOFELI_1_1DSMatrix.html" title="To handle symmetric dense matrices. " alt="DSMatrix&lt; T_ &gt;" shape="rect" coords="234,56,341,80"/>
<area href="classOFELI_1_1SkMatrix.html" title="To handle square matrices in skyline storage format. " alt="SkMatrix&lt; T_ &gt;" shape="rect" coords="351,56,458,80"/>
<area href="classOFELI_1_1SkSMatrix.html" title="To handle symmetric matrices in skyline storage format. " alt="SkSMatrix&lt; T_ &gt;" shape="rect" coords="468,56,575,80"/>
<area href="classOFELI_1_1SpMatrix.html" title="To handle matrices in sparse storage format. " alt="SpMatrix&lt; T_ &gt;" shape="rect" coords="585,56,692,80"/>
<area href="classOFELI_1_1TrMatrix.html" title="To handle tridiagonal matrices. " alt="TrMatrix&lt; T_ &gt;" shape="rect" coords="702,56,809,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3aede62f513da27e6f61ae7a972b4f96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a3aede62f513da27e6f61ae7a972b4f96">Matrix</a> ()</td></tr>
<tr class="memdesc:a3aede62f513da27e6f61ae7a972b4f96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a3aede62f513da27e6f61ae7a972b4f96">More...</a><br /></td></tr>
<tr class="separator:a3aede62f513da27e6f61ae7a972b4f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a08c31941b608d62de67b028e19ca8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a08c31941b608d62de67b028e19ca8d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a4a08c31941b608d62de67b028e19ca8d">Matrix</a> (const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;m)</td></tr>
<tr class="memdesc:a4a08c31941b608d62de67b028e19ca8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy Constructor. <br /></td></tr>
<tr class="separator:a4a08c31941b608d62de67b028e19ca8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50937512a2aece401826a35ccdf69f3b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50937512a2aece401826a35ccdf69f3b"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a50937512a2aece401826a35ccdf69f3b">~Matrix</a> ()</td></tr>
<tr class="memdesc:a50937512a2aece401826a35ccdf69f3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a50937512a2aece401826a35ccdf69f3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b0e029102ad38f4b814c6523aedb53d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a7b0e029102ad38f4b814c6523aedb53d">reset</a> ()</td></tr>
<tr class="memdesc:a7b0e029102ad38f4b814c6523aedb53d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set matrix to 0 and reset factorization parameter.  <a href="#a7b0e029102ad38f4b814c6523aedb53d">More...</a><br /></td></tr>
<tr class="separator:a7b0e029102ad38f4b814c6523aedb53d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac64de7025d9f5712288b3093ca5408b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac64de7025d9f5712288b3093ca5408b1"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ac64de7025d9f5712288b3093ca5408b1">getNbRows</a> () const </td></tr>
<tr class="memdesc:ac64de7025d9f5712288b3093ca5408b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of rows. <br /></td></tr>
<tr class="separator:ac64de7025d9f5712288b3093ca5408b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a879356293a4c2120a7f87bf231ce341c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a879356293a4c2120a7f87bf231ce341c"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a879356293a4c2120a7f87bf231ce341c">getNbColumns</a> () const </td></tr>
<tr class="memdesc:a879356293a4c2120a7f87bf231ce341c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of columns. <br /></td></tr>
<tr class="separator:a879356293a4c2120a7f87bf231ce341c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72077468b17118c44394d286f7737bd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72077468b17118c44394d286f7737bd4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a72077468b17118c44394d286f7737bd4">setPenal</a> (<a class="el" href="group__Util.html#gaccfeb6b1e8cf41731fde610549bee67c">real_t</a> p)</td></tr>
<tr class="memdesc:a72077468b17118c44394d286f7737bd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Penalty Parameter (For boundary condition prescription). <br /></td></tr>
<tr class="separator:a72077468b17118c44394d286f7737bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a282ce97ddc94a4ad0030c047b35332ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a282ce97ddc94a4ad0030c047b35332ca"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a282ce97ddc94a4ad0030c047b35332ca">setDiagonal</a> ()</td></tr>
<tr class="memdesc:a282ce97ddc94a4ad0030c047b35332ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the matrix as diagonal. <br /></td></tr>
<tr class="separator:a282ce97ddc94a4ad0030c047b35332ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06fae0c47b38f34c0c764b2b6109f9d5"><td class="memItemLeft" align="right" valign="top">T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a06fae0c47b38f34c0c764b2b6109f9d5">getDiag</a> (size_t k) const </td></tr>
<tr class="memdesc:a06fae0c47b38f34c0c764b2b6109f9d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <code>k</code>-th diagonal entry of matrix.  <a href="#a06fae0c47b38f34c0c764b2b6109f9d5">More...</a><br /></td></tr>
<tr class="separator:a06fae0c47b38f34c0c764b2b6109f9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac782da1f912bceb5d8ad00c8dc892ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac782da1f912bceb5d8ad00c8dc892ac"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#aac782da1f912bceb5d8ad00c8dc892ac">size</a> () const </td></tr>
<tr class="memdesc:aac782da1f912bceb5d8ad00c8dc892ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return matrix dimension (Number of rows and columns). <br /></td></tr>
<tr class="separator:aac782da1f912bceb5d8ad00c8dc892ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e107d55cfee986bfe0f4f9f93cfebb1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e107d55cfee986bfe0f4f9f93cfebb1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a9e107d55cfee986bfe0f4f9f93cfebb1">MultAdd</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;y) const  =0</td></tr>
<tr class="memdesc:a9e107d55cfee986bfe0f4f9f93cfebb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply matrix by vector <code>x</code> and add to <code>y</code> <br /></td></tr>
<tr class="separator:a9e107d55cfee986bfe0f4f9f93cfebb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4de5f97fbbb24b50dc41e838620db33f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4de5f97fbbb24b50dc41e838620db33f"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a4de5f97fbbb24b50dc41e838620db33f">MultAdd</a> (T_ a, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;y) const  =0</td></tr>
<tr class="memdesc:a4de5f97fbbb24b50dc41e838620db33f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply matrix by vector <code>a*x</code> and add to <code>y</code> <br /></td></tr>
<tr class="separator:a4de5f97fbbb24b50dc41e838620db33f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a203735f477738474b7fa91bd96284a33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a203735f477738474b7fa91bd96284a33"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a203735f477738474b7fa91bd96284a33">Mult</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;y) const  =0</td></tr>
<tr class="memdesc:a203735f477738474b7fa91bd96284a33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply matrix by vector <code>x</code> and save in <code>y</code> <br /></td></tr>
<tr class="separator:a203735f477738474b7fa91bd96284a33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b597cd493e07b35bdd57e351ad71580"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b597cd493e07b35bdd57e351ad71580"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a1b597cd493e07b35bdd57e351ad71580">TMult</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;v, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;w) const  =0</td></tr>
<tr class="memdesc:a1b597cd493e07b35bdd57e351ad71580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply transpose of matrix by vector <code>x</code> and save in <code>y</code> <br /></td></tr>
<tr class="separator:a1b597cd493e07b35bdd57e351ad71580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6d9078abcad160961668918ffd89df8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#af6d9078abcad160961668918ffd89df8">Axpy</a> (T_ a, const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; *x)=0</td></tr>
<tr class="memdesc:af6d9078abcad160961668918ffd89df8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add to matrix the product of a matrix by a scalar.  <a href="#af6d9078abcad160961668918ffd89df8">More...</a><br /></td></tr>
<tr class="separator:af6d9078abcad160961668918ffd89df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a196d9e08fa42335a41f8e67082215065"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a196d9e08fa42335a41f8e67082215065">setDiagonal</a> (<a class="el" href="classOFELI_1_1Mesh.html">Mesh</a> &amp;mesh)</td></tr>
<tr class="memdesc:a196d9e08fa42335a41f8e67082215065"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize matrix storage in the case where only diagonal terms are stored.  <a href="#a196d9e08fa42335a41f8e67082215065">More...</a><br /></td></tr>
<tr class="separator:a196d9e08fa42335a41f8e67082215065"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae048282c7011eedc2e0492f6421ea73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae048282c7011eedc2e0492f6421ea73"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#aae048282c7011eedc2e0492f6421ea73">clear</a> ()</td></tr>
<tr class="memdesc:aae048282c7011eedc2e0492f6421ea73"><td class="mdescLeft">&#160;</td><td class="mdescRight">brief Set all matrix entries to zero <br /></td></tr>
<tr class="separator:aae048282c7011eedc2e0492f6421ea73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae8f063011ae37198a6c96ad00da6188"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#aae8f063011ae37198a6c96ad00da6188">Assembly</a> (const <a class="el" href="classOFELI_1_1Element.html">Element</a> &amp;el, T_ *a)</td></tr>
<tr class="memdesc:aae8f063011ae37198a6c96ad00da6188"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assembly of element matrix into global matrix.  <a href="#aae8f063011ae37198a6c96ad00da6188">More...</a><br /></td></tr>
<tr class="separator:aae8f063011ae37198a6c96ad00da6188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a377c96d9edc5455d8b81d7f2e75a7437"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a377c96d9edc5455d8b81d7f2e75a7437">Assembly</a> (const <a class="el" href="classOFELI_1_1Side.html">Side</a> &amp;sd, T_ *a)</td></tr>
<tr class="memdesc:a377c96d9edc5455d8b81d7f2e75a7437"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assembly of side matrix into global matrix.  <a href="#a377c96d9edc5455d8b81d7f2e75a7437">More...</a><br /></td></tr>
<tr class="separator:a377c96d9edc5455d8b81d7f2e75a7437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1775cd968f5d809fed17f111c852a8f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a1775cd968f5d809fed17f111c852a8f4">Prescribe</a> (<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;u, int flag=0)</td></tr>
<tr class="memdesc:a1775cd968f5d809fed17f111c852a8f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method an essential boundary condition, using the <a class="el" href="classOFELI_1_1Mesh.html" title="To store and manipulate finite element meshes. ">Mesh</a> instance provided by the constructor.  <a href="#a1775cd968f5d809fed17f111c852a8f4">More...</a><br /></td></tr>
<tr class="separator:a1775cd968f5d809fed17f111c852a8f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e9143a391d39e2b1c8fc092d18a2c01"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a5e9143a391d39e2b1c8fc092d18a2c01">Prescribe</a> (int dof, int code, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;u, int flag=0)</td></tr>
<tr class="memdesc:a5e9143a391d39e2b1c8fc092d18a2c01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method an essential boundary condition to a given degree of freedom for a given code.  <a href="#a5e9143a391d39e2b1c8fc092d18a2c01">More...</a><br /></td></tr>
<tr class="separator:a5e9143a391d39e2b1c8fc092d18a2c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d58b8c69697615bb891ad8d89192e11"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a3d58b8c69697615bb891ad8d89192e11">Prescribe</a> (<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, int flag=0)</td></tr>
<tr class="memdesc:a3d58b8c69697615bb891ad8d89192e11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method a homegeneous (=0) essential boundary condition.  <a href="#a3d58b8c69697615bb891ad8d89192e11">More...</a><br /></td></tr>
<tr class="separator:a3d58b8c69697615bb891ad8d89192e11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a278a1ed1bb0a7a6df613e63816c8cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a0a278a1ed1bb0a7a6df613e63816c8cf">Prescribe</a> (size_t dof, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;u, int flag=0)</td></tr>
<tr class="memdesc:a0a278a1ed1bb0a7a6df613e63816c8cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method an essential boundary condition when only one DOF is treated.  <a href="#a0a278a1ed1bb0a7a6df613e63816c8cf">More...</a><br /></td></tr>
<tr class="separator:a0a278a1ed1bb0a7a6df613e63816c8cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4668862b3d13a8ac8ffec768b7e38631"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a4668862b3d13a8ac8ffec768b7e38631">PrescribeSide</a> ()</td></tr>
<tr class="memdesc:a4668862b3d13a8ac8ffec768b7e38631"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method an essential boundary condition when DOFs are supported by sides.  <a href="#a4668862b3d13a8ac8ffec768b7e38631">More...</a><br /></td></tr>
<tr class="separator:a4668862b3d13a8ac8ffec768b7e38631"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8afb24c3d7982f994ea2c4a50444ed86"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8afb24c3d7982f994ea2c4a50444ed86"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a8afb24c3d7982f994ea2c4a50444ed86">add</a> (size_t i, size_t j, const T_ &amp;val)=0</td></tr>
<tr class="memdesc:a8afb24c3d7982f994ea2c4a50444ed86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add <code>val</code> to entry <code>(i,j)</code>. <br /></td></tr>
<tr class="separator:a8afb24c3d7982f994ea2c4a50444ed86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9f6b1105cb4953c3f56b5c51ed4b046"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9f6b1105cb4953c3f56b5c51ed4b046"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ab9f6b1105cb4953c3f56b5c51ed4b046">Factor</a> ()=0</td></tr>
<tr class="memdesc:ab9f6b1105cb4953c3f56b5c51ed4b046"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factorize matrix. Available only if the storage class enables it. <br /></td></tr>
<tr class="separator:ab9f6b1105cb4953c3f56b5c51ed4b046"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31a4417e8d251ece6decd21307049dbf"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a31a4417e8d251ece6decd21307049dbf">solve</a> (<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, bool fact=true)=0</td></tr>
<tr class="memdesc:a31a4417e8d251ece6decd21307049dbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve the linear system.  <a href="#a31a4417e8d251ece6decd21307049dbf">More...</a><br /></td></tr>
<tr class="separator:a31a4417e8d251ece6decd21307049dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fe82250a093bea1e2d5514748574d80"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a4fe82250a093bea1e2d5514748574d80">solve</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x, bool fact=true)=0</td></tr>
<tr class="memdesc:a4fe82250a093bea1e2d5514748574d80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve the linear system.  <a href="#a4fe82250a093bea1e2d5514748574d80">More...</a><br /></td></tr>
<tr class="separator:a4fe82250a093bea1e2d5514748574d80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af70ebb919bf4d6e5e646c1c113392a79"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#af70ebb919bf4d6e5e646c1c113392a79">FactorAndSolve</a> (<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>)</td></tr>
<tr class="memdesc:af70ebb919bf4d6e5e646c1c113392a79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factorize matrix and solve the linear system.  <a href="#af70ebb919bf4d6e5e646c1c113392a79">More...</a><br /></td></tr>
<tr class="separator:af70ebb919bf4d6e5e646c1c113392a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad20265f18b86fdc36c0c694d34bb01db"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ad20265f18b86fdc36c0c694d34bb01db">FactorAndSolve</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x)</td></tr>
<tr class="memdesc:ad20265f18b86fdc36c0c694d34bb01db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factorize matrix and solve the linear system.  <a href="#ad20265f18b86fdc36c0c694d34bb01db">More...</a><br /></td></tr>
<tr class="separator:ad20265f18b86fdc36c0c694d34bb01db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68d4c55c333f8db2cc206b90b1e53041"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68d4c55c333f8db2cc206b90b1e53041"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a68d4c55c333f8db2cc206b90b1e53041">getLength</a> () const </td></tr>
<tr class="memdesc:a68d4c55c333f8db2cc206b90b1e53041"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of stored terms in matrix. <br /></td></tr>
<tr class="separator:a68d4c55c333f8db2cc206b90b1e53041"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01047a7f68670914394281ab80f89947"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01047a7f68670914394281ab80f89947"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a01047a7f68670914394281ab80f89947">isDiagonal</a> () const </td></tr>
<tr class="memdesc:a01047a7f68670914394281ab80f89947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Say if matrix is diagonal or not. <br /></td></tr>
<tr class="separator:a01047a7f68670914394281ab80f89947"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1db6c5f267140ce71d02b845638d6229"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a1db6c5f267140ce71d02b845638d6229">isFactorized</a> () const </td></tr>
<tr class="memdesc:a1db6c5f267140ce71d02b845638d6229"><td class="mdescLeft">&#160;</td><td class="mdescRight">Say if matrix is factorized or not.  <a href="#a1db6c5f267140ce71d02b845638d6229">More...</a><br /></td></tr>
<tr class="separator:a1db6c5f267140ce71d02b845638d6229"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4f6cc2fefdae6c493609bb253d571b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4f6cc2fefdae6c493609bb253d571b7"></a>
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#af4f6cc2fefdae6c493609bb253d571b7">getColInd</a> (size_t i) const </td></tr>
<tr class="memdesc:af4f6cc2fefdae6c493609bb253d571b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return Column index for column <code>i</code> (See the description for class <a class="el" href="classOFELI_1_1SpMatrix.html" title="To handle matrices in sparse storage format. ">SpMatrix</a>). <br /></td></tr>
<tr class="separator:af4f6cc2fefdae6c493609bb253d571b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10438b6ef525d89a3fdfb549b03b4488"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a10438b6ef525d89a3fdfb549b03b4488"></a>
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a10438b6ef525d89a3fdfb549b03b4488">getRowPtr</a> (size_t i) const </td></tr>
<tr class="memdesc:a10438b6ef525d89a3fdfb549b03b4488"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return Row pointer for row <code>i</code> (See the description for class <a class="el" href="classOFELI_1_1SpMatrix.html" title="To handle matrices in sparse storage format. ">SpMatrix</a>). <br /></td></tr>
<tr class="separator:a10438b6ef525d89a3fdfb549b03b4488"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0cea700fd87a3493ee917937ca21796"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ac0cea700fd87a3493ee917937ca21796">set</a> (size_t i, size_t j, const T_ &amp;val)=0</td></tr>
<tr class="memdesc:ac0cea700fd87a3493ee917937ca21796"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign a value to an entry of the matrix.  <a href="#ac0cea700fd87a3493ee917937ca21796">More...</a><br /></td></tr>
<tr class="separator:ac0cea700fd87a3493ee917937ca21796"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98a5eea24da5bcb89516b2bd80a652d2"><td class="memItemLeft" align="right" valign="top">virtual T_ &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a98a5eea24da5bcb89516b2bd80a652d2">operator()</a> (size_t i, size_t j)=0</td></tr>
<tr class="memdesc:a98a5eea24da5bcb89516b2bd80a652d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator () (Non constant version).  <a href="#a98a5eea24da5bcb89516b2bd80a652d2">More...</a><br /></td></tr>
<tr class="separator:a98a5eea24da5bcb89516b2bd80a652d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5414ae5692942759e032a895a05f3903"><td class="memItemLeft" align="right" valign="top">virtual T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a5414ae5692942759e032a895a05f3903">operator()</a> (size_t i, size_t j) const  =0</td></tr>
<tr class="memdesc:a5414ae5692942759e032a895a05f3903"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator () (Non constant version).  <a href="#a5414ae5692942759e032a895a05f3903">More...</a><br /></td></tr>
<tr class="separator:a5414ae5692942759e032a895a05f3903"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ddc9619401846e377b99d5f35e21580"><td class="memItemLeft" align="right" valign="top">T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a5ddc9619401846e377b99d5f35e21580">operator()</a> (size_t i) const </td></tr>
<tr class="memdesc:a5ddc9619401846e377b99d5f35e21580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator () with one argument (Constant version).  <a href="#a5ddc9619401846e377b99d5f35e21580">More...</a><br /></td></tr>
<tr class="separator:a5ddc9619401846e377b99d5f35e21580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7fb7738730bfcc21b07ede2b6137fc9"><td class="memItemLeft" align="right" valign="top">T_ &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ad7fb7738730bfcc21b07ede2b6137fc9">operator()</a> (size_t i)</td></tr>
<tr class="memdesc:ad7fb7738730bfcc21b07ede2b6137fc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator () with one argument (Non Constant version).  <a href="#ad7fb7738730bfcc21b07ede2b6137fc9">More...</a><br /></td></tr>
<tr class="separator:ad7fb7738730bfcc21b07ede2b6137fc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a760177d294663b1dd8941afd331b0fbb"><td class="memItemLeft" align="right" valign="top">T_ &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a760177d294663b1dd8941afd331b0fbb">operator[]</a> (size_t k)</td></tr>
<tr class="memdesc:a760177d294663b1dd8941afd331b0fbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator [] (Non constant version).  <a href="#a760177d294663b1dd8941afd331b0fbb">More...</a><br /></td></tr>
<tr class="separator:a760177d294663b1dd8941afd331b0fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c9fc831c3cfa8fe5b57e99da5ac1e52"><td class="memItemLeft" align="right" valign="top">T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a0c9fc831c3cfa8fe5b57e99da5ac1e52">operator[]</a> (size_t k) const </td></tr>
<tr class="memdesc:a0c9fc831c3cfa8fe5b57e99da5ac1e52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator [] (Constant version).  <a href="#a0c9fc831c3cfa8fe5b57e99da5ac1e52">More...</a><br /></td></tr>
<tr class="separator:a0c9fc831c3cfa8fe5b57e99da5ac1e52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8c251d473d9144bcd269aa49fd738d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ae8c251d473d9144bcd269aa49fd738d5">operator=</a> (<a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;m)</td></tr>
<tr class="memdesc:ae8c251d473d9144bcd269aa49fd738d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator =.  <a href="#ae8c251d473d9144bcd269aa49fd738d5">More...</a><br /></td></tr>
<tr class="separator:ae8c251d473d9144bcd269aa49fd738d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3cbfbe86d6789ebc8b34b261402fb9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#aa3cbfbe86d6789ebc8b34b261402fb9a">operator+=</a> (const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;m)</td></tr>
<tr class="memdesc:aa3cbfbe86d6789ebc8b34b261402fb9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator +=.  <a href="#aa3cbfbe86d6789ebc8b34b261402fb9a">More...</a><br /></td></tr>
<tr class="separator:aa3cbfbe86d6789ebc8b34b261402fb9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82f89bc074972e8d49e6459ea384d672"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a82f89bc074972e8d49e6459ea384d672">operator-=</a> (const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;m)</td></tr>
<tr class="memdesc:a82f89bc074972e8d49e6459ea384d672"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator -=.  <a href="#a82f89bc074972e8d49e6459ea384d672">More...</a><br /></td></tr>
<tr class="separator:a82f89bc074972e8d49e6459ea384d672"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41cd89a10218b679e5435135797da444"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a41cd89a10218b679e5435135797da444">operator=</a> (const T_ &amp;x)</td></tr>
<tr class="memdesc:a41cd89a10218b679e5435135797da444"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator =.  <a href="#a41cd89a10218b679e5435135797da444">More...</a><br /></td></tr>
<tr class="separator:a41cd89a10218b679e5435135797da444"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c1370eca69f9880d5456fb9f4e1da44"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a7c1370eca69f9880d5456fb9f4e1da44">operator*=</a> (const T_ &amp;x)</td></tr>
<tr class="memdesc:a7c1370eca69f9880d5456fb9f4e1da44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator *=.  <a href="#a7c1370eca69f9880d5456fb9f4e1da44">More...</a><br /></td></tr>
<tr class="separator:a7c1370eca69f9880d5456fb9f4e1da44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaed73bab677150385013d0d6e138c69"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#adaed73bab677150385013d0d6e138c69">operator+=</a> (const T_ &amp;x)</td></tr>
<tr class="memdesc:adaed73bab677150385013d0d6e138c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator +=.  <a href="#adaed73bab677150385013d0d6e138c69">More...</a><br /></td></tr>
<tr class="separator:adaed73bab677150385013d0d6e138c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a778ac464768eefc4fd77ab93207c70cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a778ac464768eefc4fd77ab93207c70cb">operator-=</a> (const T_ &amp;x)</td></tr>
<tr class="memdesc:a778ac464768eefc4fd77ab93207c70cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator -=.  <a href="#a778ac464768eefc4fd77ab93207c70cb">More...</a><br /></td></tr>
<tr class="separator:a778ac464768eefc4fd77ab93207c70cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6786c8f89b64c60ded42359c21df6a19"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6786c8f89b64c60ded42359c21df6a19"></a>
virtual T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a6786c8f89b64c60ded42359c21df6a19">get</a> (size_t i, size_t j) const  =0</td></tr>
<tr class="memdesc:a6786c8f89b64c60ded42359c21df6a19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return entry <code>(i,j)</code> of matrix if this one is stored, <code>0</code> else. <br /></td></tr>
<tr class="separator:a6786c8f89b64c60ded42359c21df6a19"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_&gt;<br />
class OFELI::Matrix&lt; T_ &gt;</h3>

<p>Virtual class to handle matrices for all storage formats. </p>
<p>This class enables storing and manipulating dense matrices. The template parameter is the type of matrix entries. Any matrix entry can be accessed by the () operator: For instance, if <code>A</code> is an instance of this class, <code>A(i,j)</code> stands for the entry at the i-th row and j-th column, <code>i</code> and <code>j</code> starting from 1. Entries of <code>A</code> can be assigned a value by the same operator.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">&lt;T_&gt;</td><td>Data type (real_t, float, complex&lt;real_t&gt;, ...)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section author"><dt>Author</dt><dd>Rachid Touzani </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>GNU Lesser Public License </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a3aede62f513da27e6f61ae7a972b4f96"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default constructor. </p>
<p>Initializes a zero-size matrix. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a7b0e029102ad38f4b814c6523aedb53d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void reset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set matrix to 0 and reset factorization parameter. </p>
<dl class="section warning"><dt>Warning</dt><dd>This function must be used if after a factorization, the matrix has modified </dd></dl>

<p>Reimplemented in <a class="el" href="classOFELI_1_1DMatrix.html#ad20897c5c8bd47f5d4005989bead0e55">DMatrix&lt; T_ &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a06fae0c47b38f34c0c764b2b6109f9d5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">T_ getDiag </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return <code>k</code>-th diagonal entry of matrix. </p>
<p>First entry is given by <b>getDiag(1)</b>. </p>

</div>
</div>
<a class="anchor" id="af6d9078abcad160961668918ffd89df8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void Axpy </td>
          <td>(</td>
          <td class="paramtype">T_&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; *&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add to matrix the product of a matrix by a scalar. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Scalar to premultiply </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Matrix by which <code>a</code> is multiplied. The result is added to current instance </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="group__OFELI.html#gac7ecd57722b088d883cdb26ac2887270">SpMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DSMatrix.html#ac7ecd57722b088d883cdb26ac2887270">DSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DMatrix.html#ac7ecd57722b088d883cdb26ac2887270">DMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkSMatrix.html#ac7ecd57722b088d883cdb26ac2887270">SkSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkMatrix.html#ac7ecd57722b088d883cdb26ac2887270">SkMatrix&lt; T_ &gt;</a>, <a class="el" href="group__OFELI.html#gac7ecd57722b088d883cdb26ac2887270">TrMatrix&lt; T_ &gt;</a>, and <a class="el" href="classOFELI_1_1BMatrix.html#a8c474f5353d595009b1f4328cebaaebe">BMatrix&lt; T_ &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a196d9e08fa42335a41f8e67082215065"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setDiagonal </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Mesh.html">Mesh</a> &amp;&#160;</td>
          <td class="paramname"><em>mesh</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize matrix storage in the case where only diagonal terms are stored. </p>
<p>This member function is to be used for explicit time integration schemes </p>

</div>
</div>
<a class="anchor" id="aae8f063011ae37198a6c96ad00da6188"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Assembly </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Element.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>el</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_ *&#160;</td>
          <td class="paramname"><em>a</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Assembly of element matrix into global matrix. </p>
<p>Case where element matrix is given by a C-array. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">el</td><td>Pointer to element instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td><a class="el" href="classOFELI_1_1Element.html" title="To store and treat finite element geometric information. ">Element</a> matrix as a C-array </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a377c96d9edc5455d8b81d7f2e75a7437"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Assembly </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Side.html">Side</a> &amp;&#160;</td>
          <td class="paramname"><em>sd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_ *&#160;</td>
          <td class="paramname"><em>a</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Assembly of side matrix into global matrix. </p>
<p>Case where side matrix is given by a C-array. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sd</td><td>Pointer to side instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td><a class="el" href="classOFELI_1_1Side.html" title="To store and treat finite element sides (edges in 2-D or faces in 3-D) ">Side</a> matrix as a C-array instance </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1775cd968f5d809fed17f111c852a8f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Prescribe </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flag</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Impose by a penalty method an essential boundary condition, using the <a class="el" href="classOFELI_1_1Mesh.html" title="To store and manipulate finite element meshes. ">Mesh</a> instance provided by the constructor. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. The penalty parameter is defined by default equal to 1.e20. It can be modified by member function <b>setPenal</b>(..). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">u</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains imposed valued at DOFs where they are to be imposed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>Parameter to determine whether only the right-hand side is to be modified (<code>dof&gt;0</code>)<br />
or both matrix and right-hand side (<code>dof=0</code>, default value). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5e9143a391d39e2b1c8fc092d18a2c01"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Prescribe </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dof</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flag</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Impose by a penalty method an essential boundary condition to a given degree of freedom for a given code. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. The penalty parameter is defined by default equal to 1.e20. It can be modified by member function <b>setPenal</b>(..). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dof</td><td>Degree of freedom for which a boundary condition is to be enforced </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">code</td><td>Code for which a boundary condition is to be enforced </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">u</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains imposed valued at DOFs where they are to be imposed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>Parameter to determine whether only the right-hand side is to be modified<br />
(<code>dof&gt;0</code>) or both matrix and right-hand side (<code>dof=0</code>, default value). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3d58b8c69697615bb891ad8d89192e11"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Prescribe </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flag</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Impose by a penalty method a homegeneous (=0) essential boundary condition. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. The penalty parameter is defined by default equal to 1.e20. It can be modified by member function <b>setPenal</b>(..). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>Parameter to determine whether only the right-hand side is to be modified (<code>dof&gt;0</code>)<br />
or both matrix and right-hand side (<code>dof=0</code>, default value). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0a278a1ed1bb0a7a6df613e63816c8cf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Prescribe </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>dof</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flag</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Impose by a penalty method an essential boundary condition when only one DOF is treated. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. This gunction is to be used if only one DOF per node is treated in the linear system. The penalty parameter is by default equal to 1.e20. It can be modified by member function setPenal. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dof</td><td>Label of the concerned degree of freedom (DOF). </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">u</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that conatins imposed valued at DOFs where they are to be imposed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>Parameter to determine whether only the right-hand side is to be modified (<code>dof&gt;0</code>)<br />
or both matrix and right-hand side (<code>dof=0</code>, default value). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4668862b3d13a8ac8ffec768b7e38631"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PrescribeSide </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Impose by a penalty method an essential boundary condition when DOFs are supported by sides. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. The penalty parameter is defined by default equal to 1.e20. It can be modified by member function <b>setPenal</b>(..). </p>

</div>
</div>
<a class="anchor" id="a31a4417e8d251ece6decd21307049dbf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int solve </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>fact</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Solve the linear system. </p>
<p>If the inherited class is <a class="el" href="classOFELI_1_1SpMatrix.html" title="To handle matrices in sparse storage format. ">SpMatrix</a>, the function uses an iterative method once this one has been chosen. Otherwise, the method solves the linear system by factorization. </p>

<p>Implemented in <a class="el" href="classOFELI_1_1DMatrix.html#a85abe8e904adb7fd09103d7b3e8e362d">DMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkSMatrix.html#a85abe8e904adb7fd09103d7b3e8e362d">SkSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkMatrix.html#a85abe8e904adb7fd09103d7b3e8e362d">SkMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DSMatrix.html#a85abe8e904adb7fd09103d7b3e8e362d">DSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1BMatrix.html#abf3df464c1118a2063447c9765725a2e">BMatrix&lt; T_ &gt;</a>, and <a class="el" href="group__OFELI.html#ga85abe8e904adb7fd09103d7b3e8e362d">TrMatrix&lt; T_ &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a4fe82250a093bea1e2d5514748574d80"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int solve </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>fact</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Solve the linear system. </p>
<p>If the inherited class is <a class="el" href="classOFELI_1_1SpMatrix.html" title="To handle matrices in sparse storage format. ">SpMatrix</a>, the function uses an iterative method once this one has been chosen. Otherwise, the method solves the linear system by factorization. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">x</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains solution </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fact</td><td>Set to <code>true</code> if factorization is to be performed, <code>false</code> if not. [Default: <code>true</code>] </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>
<code>0</code> if solution was normally performed </li>
<li>
<code>n</code> if the <code>n</code>-th pivot is null<br />
 Solution is performed only is factorization has previouly been invoked. </li>
</ul>
</dd></dl>

<p>Implemented in <a class="el" href="group__OFELI.html#ga60abf009c8cdb7ca5f86cf266752cb97">SpMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DMatrix.html#a27c662f32ce66be2efa47871358fcf10">DMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkSMatrix.html#a27c662f32ce66be2efa47871358fcf10">SkSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkMatrix.html#a27c662f32ce66be2efa47871358fcf10">SkMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DSMatrix.html#a27c662f32ce66be2efa47871358fcf10">DSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1BMatrix.html#a60abf009c8cdb7ca5f86cf266752cb97">BMatrix&lt; T_ &gt;</a>, and <a class="el" href="group__OFELI.html#ga60abf009c8cdb7ca5f86cf266752cb97">TrMatrix&lt; T_ &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="af70ebb919bf4d6e5e646c1c113392a79"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int FactorAndSolve </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Factorize matrix and solve the linear system. </p>
<p>This is available only if the storage cass enables it. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side on input and solution on output </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad20265f18b86fdc36c0c694d34bb01db"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int FactorAndSolve </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Factorize matrix and solve the linear system. </p>
<p>This is available only if the storage class enables it. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">x</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains solution </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>
<code>0</code> if solution was normally performed </li>
<li>
<code>n</code> if the n-th pivot is nul </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="a1db6c5f267140ce71d02b845638d6229"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int isFactorized </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Say if matrix is factorized or not. </p>
<p>If the matrix was not factorized, the class does not allow solving by a direct solver. </p>

</div>
</div>
<a class="anchor" id="ac0cea700fd87a3493ee917937ca21796"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void set </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_ &amp;&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assign a value to an entry of the matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>Row index </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>Column index </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Value to assign </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="group__OFELI.html#ga61cf373a94a5fedbca306e016bc489c9">SpMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkSMatrix.html#a61cf373a94a5fedbca306e016bc489c9">SkSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DMatrix.html#a61cf373a94a5fedbca306e016bc489c9">DMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkMatrix.html#a61cf373a94a5fedbca306e016bc489c9">SkMatrix&lt; T_ &gt;</a>, <a class="el" href="group__OFELI.html#ga61cf373a94a5fedbca306e016bc489c9">TrMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1BMatrix.html#a61cf373a94a5fedbca306e016bc489c9">BMatrix&lt; T_ &gt;</a>, and <a class="el" href="classOFELI_1_1DSMatrix.html#a61cf373a94a5fedbca306e016bc489c9">DSMatrix&lt; T_ &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a98a5eea24da5bcb89516b2bd80a652d2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual T_&amp; operator() </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Operator () (Non constant version). </p>
<p>Returns the <code>(i,j)</code> entry of the matrix. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>Row index </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>Column index </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="group__OFELI.html#ga906d09665a54a68d6333925dc83c57c8">SpMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DMatrix.html#a906d09665a54a68d6333925dc83c57c8">DMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkSMatrix.html#a906d09665a54a68d6333925dc83c57c8">SkSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkMatrix.html#a906d09665a54a68d6333925dc83c57c8">SkMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DSMatrix.html#a906d09665a54a68d6333925dc83c57c8">DSMatrix&lt; T_ &gt;</a>, <a class="el" href="group__OFELI.html#ga906d09665a54a68d6333925dc83c57c8">TrMatrix&lt; T_ &gt;</a>, and <a class="el" href="classOFELI_1_1BMatrix.html#a906d09665a54a68d6333925dc83c57c8">BMatrix&lt; T_ &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a5414ae5692942759e032a895a05f3903"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual T_ operator() </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Operator () (Non constant version). </p>
<p>Returns the <code>(i,j)</code> entry of the matrix. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>Row index </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>Column index </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="group__OFELI.html#gaf4d11677b77c61b1c2530c0295d9a966">SpMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DMatrix.html#af4d11677b77c61b1c2530c0295d9a966">DMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkSMatrix.html#af4d11677b77c61b1c2530c0295d9a966">SkSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkMatrix.html#af4d11677b77c61b1c2530c0295d9a966">SkMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DSMatrix.html#af4d11677b77c61b1c2530c0295d9a966">DSMatrix&lt; T_ &gt;</a>, <a class="el" href="group__OFELI.html#gaf4d11677b77c61b1c2530c0295d9a966">TrMatrix&lt; T_ &gt;</a>, and <a class="el" href="classOFELI_1_1BMatrix.html#af4d11677b77c61b1c2530c0295d9a966">BMatrix&lt; T_ &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a5ddc9619401846e377b99d5f35e21580"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">T_ operator() </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator () with one argument (Constant version). </p>
<p>Returns <code>i</code>-th position in the array storing matrix entries. The first entry is at location 1. Entries are stored row by row. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>entry index </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad7fb7738730bfcc21b07ede2b6137fc9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">T_&amp; operator() </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator () with one argument (Non Constant version). </p>
<p>Returns <code>i</code>-th position in the array storing matrix entries. The first entry is at location 1. Entries are stored row by row. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>entry index </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a760177d294663b1dd8941afd331b0fbb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">T_&amp; operator[] </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator [] (Non constant version). </p>
<p>Returns <code>k</code>-th stored element in matrix Index <code>k</code> starts at <code>0</code>. </p>

</div>
</div>
<a class="anchor" id="a0c9fc831c3cfa8fe5b57e99da5ac1e52"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">T_ operator[] </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator [] (Constant version). </p>
<p>Returns <code>k</code>-th stored element in matrix Index <code>k</code> starts at <code>0</code>. </p>

</div>
</div>
<a class="anchor" id="ae8c251d473d9144bcd269aa49fd738d5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator =. </p>
<p>Copy matrix <code>m</code> to current matrix instance. </p>

</div>
</div>
<a class="anchor" id="aa3cbfbe86d6789ebc8b34b261402fb9a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator +=. </p>
<p>Add matrix <code>m</code> to current matrix instance. </p>

</div>
</div>
<a class="anchor" id="a82f89bc074972e8d49e6459ea384d672"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator -=. </p>
<p>Subtract matrix <code>m</code> from current matrix instance. </p>

</div>
</div>
<a class="anchor" id="a41cd89a10218b679e5435135797da444"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype">const T_ &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator =. </p>
<p>Assign constant value <code>x</code> to all matrix entries. </p>

</div>
</div>
<a class="anchor" id="a7c1370eca69f9880d5456fb9f4e1da44"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator*= </td>
          <td>(</td>
          <td class="paramtype">const T_ &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator *=. </p>
<p>Premultiply matrix entries by constant value <code>x</code> </p>

</div>
</div>
<a class="anchor" id="adaed73bab677150385013d0d6e138c69"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator+= </td>
          <td>(</td>
          <td class="paramtype">const T_ &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator +=. </p>
<p>Add constant value <code>x</code> to all matrix entries. </p>

</div>
</div>
<a class="anchor" id="a778ac464768eefc4fd77ab93207c70cb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator-= </td>
          <td>(</td>
          <td class="paramtype">const T_ &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Operator -=. </p>
<p>Subtract constant value <code>x</code> from all matrix entries. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->

</div> <!-- class text -->
</div> <!-- main menu -->
<!-- Google Search -->
<br><br>
<center>
  <div id="cse" style="width: 80%;">Loading</div>
  <script src="http://www.google.com/jsapi" type="text/javascript"></script>
  <script type="text/javascript"> 
     google.load('search', '1', {language : 'en', style : google.loader.themes.SHINY});
     google.setOnLoadCallback(function() {
        var customSearchOptions = {};  var customSearchControl = new google.search.CustomSearchControl(
        '012396140824982761142:-qrywxcfi_o', customSearchOptions);
        customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
        customSearchControl.draw('cse');
     }, true);
   </script>
   <style type="text/css">
     .gsc-control-cse {
     font-family: Verdana, sans-serif;
     border-color: #DAE0E5;
     background-color: #DAE0E5;
   }
   .gsc-control-cse .gsc-table-result { font-family: Verdana, sans-serif; }
   input.gsc-input { border-color: #B6BEC5; }
   input.gsc-search-button {
     border-color: #B6BEC5;
     background-color: #D0D1D4;
   }
   .gsc-tabHeader.gsc-tabhInactive {
     border-color: #999999;
     background-color: #EEEEEE;
   }
   .gsc-tabHeader.gsc-tabhActive {
     border-color: #999999;
     background-color: #999999;
   }
   .gsc-tabsArea { border-color: #999999; }
   .gsc-webResult.gsc-result,
   .gsc-results .gsc-imageResult {
     border-color: #FFFFFF;
     background-color: #FFFFFF;
   }
   .gsc-webResult.gsc-result:hover,
   .gsc-imageResult:hover {
     border-color: #D2D6DC;
     background-color: #EDEDED;
   }
   .gsc-webResult.gsc-result.gsc-promotion:hover {
     border-color: #D2D6DC;
     background-color: #EDEDED;
   }
   .gs-webResult.gs-result a.gs-title:link,
   .gs-webResult.gs-result a.gs-title:link b,
   .gs-imageResult a.gs-title:link,
   .gs-imageResult a.gs-title:link b { color: #0568CD; }
   .gs-webResult.gs-result a.gs-title:visited,
   .gs-webResult.gs-result a.gs-title:visited b,
   .gs-imageResult a.gs-title:visited,
   .gs-imageResult a.gs-title:visited b { color: #0568CD; }
   .gs-webResult.gs-result a.gs-title:hover,
   .gs-webResult.gs-result a.gs-title:hover b,
   .gs-imageResult a.gs-title:hover,
   .gs-imageResult a.gs-title:hover b { color: #0568CD; }
   .gs-webResult.gs-result a.gs-title:active,
   .gs-webResult.gs-result a.gs-title:active b,
   .gs-imageResult a.gs-title:active,
   .gs-imageResult a.gs-title:active b { color: #0568CD; }
   .gsc-cursor-page { color: #0568CD; }
   a.gsc-trailing-more-results:link { color: #0568CD; }
   .gs-webResult .gs-snippet,
   .gs-imageResult .gs-snippet,
   .gs-fileFormatType { color: #5F6A73; }
   .gs-webResult div.gs-visibleUrl,
   .gs-imageResult div.gs-visibleUrl { color: #5F6A73; }
   .gs-webResult div.gs-visibleUrl-short { color: #5F6A73; }
   .gs-webResult div.gs-visibleUrl-short { display: none; }
   .gs-webResult div.gs-visibleUrl-long { display: block; }
   .gs-promotion div.gs-visibleUrl-short { display: none; }
   .gs-promotion div.gs-visibleUrl-long { display: block; }
   .gsc-cursor-box { border-color: #FFFFFF; }
   .gsc-results .gsc-cursor-box .gsc-cursor-page {
      border-color: #999999;
      background-color: #FFFFFF;
      color: #0568CD;
   }
   .gsc-results .gsc-cursor-box .gsc-cursor-current-page {
      border-color: #999999;
      background-color: #999999;
      color: #0568CD;
   }
   .gsc-webResult.gsc-result.gsc-promotion {
      border-color: #D2D6DC;
      background-color: #D0D1D4;
   }
   .gsc-completion-title { color: #0568CD; }
   .gsc-completion-snippet { color: #5F6A73; }
   .gs-promotion a.gs-title:link,
   .gs-promotion a.gs-title:link *,
   .gs-promotion .gs-snippet a:link { color: #0066CC; }
   .gs-promotion a.gs-title:visited,
   .gs-promotion a.gs-title:visited *,
   .gs-promotion .gs-snippet a:visited { color: #0066CC; }
   .gs-promotion a.gs-title:hover,
   .gs-promotion a.gs-title:hover *,
   .gs-promotion .gs-snippet a:hover { color: #0066CC; }
   .gs-promotion a.gs-title:active,
   .gs-promotion a.gs-title:active *,
   .gs-promotion .gs-snippet a:active { color: #0066CC; }
   .gs-promotion .gs-snippet,
   .gs-promotion .gs-title .gs-promotion-title-right,
   .gs-promotion .gs-title .gs-promotion-title-right *  { color: #333333; }
   .gs-promotion .gs-visibleUrl,
   .gs-promotion .gs-visibleUrl-short { color: #5F6A73; }
   </style>
</center>
<!-- End of Google Search Box -->
<br><br><br></p>
<div id="foot_bar">
  Copyright &copy; 1998-2019 Rachid Touzani&nbsp;
</div>
</div> <!-- main -->
</body>
</HTML>
